import request from '@/config/axios'

// 课程管理 VO
export interface ManageVO {
  id: number // id
  name: string // 基础_课程名称
  teacher: number // 基础_讲师id
  catalog: string // 基础_目录
  courseType: number // 基础_课程类型
  courseTypeName: string // 基础_课程类型
  validTime: string // 基础_课程有效时间范围
  price: number // 基础_课程价格
  cover: string // 基础_封面
  introduce: string // 基础_课程介绍
  authorityType: number // 控制_权限类型_0完全公开_1部分课程_2私密课程
  popupCheck: boolean // 控制_弹窗防呆校验
  disableDrag: boolean // 控制_禁止视频拖动
  orderStudy: boolean // 控制_是否顺序学习
  speed: boolean // 控制_是否可以快进
  studyTime: string // 控制_顺序学习
  faceRecognition: boolean // 控制_是否人脸识别
  capture: boolean // 控制_是否人脸抓拍
  multiplePlay: boolean // 控制_是否可以倍数播放
  certificate: string // 学完_播放完后发布证书
  points: number // 学完_播放完获得积分
  status: number // 状态1有效
}

// 课程管理 API
export const ManageApi = {
  // 查询课程管理分页
  getManagePage: async (params: any) => {
    return await request.get({ url: `/lession/manage/page`, params })
  },

  // 查询课程管理详情
  getManage: async (id: number) => {
    return await request.get({ url: `/lession/manage/get?id=` + id })
  },
  // 查询课程管理详情
  getLables: async (type: number) => {
    return await request.get({ url: `/lession/label/list?type=` + type })
  },

  // 新增标签
  addLabel: async (data: any) => {
    return await request.post({ url: `/lession/label/add`, data })
  },
  // 删除标签
  deleteLabel: async (id: number) => {
    return await request.delete({ url: `/lession/label/delete?id=`+id })
  },

  // 新增或者更新课程管理
  saveOrUpdate: async (data: any) => {
    return await request.post({ url: `/lession/manage/saveOrUpdate`, data })
  },

  // 修改课程管理
  updateManage: async (data: ManageVO) => {
    return await request.put({ url: `/lession/manage/update`, data })
  },

  // 删除课程管理
  deleteManage: async (id: number) => {
    return await request.delete({ url: `/lession/manage/delete?id=` + id })
  },

  // 导出课程管理 Excel
  exportManage: async (params) => {
    return await request.download({ url: `/lession/manage/export-excel`, params })
  },
  // 新增或者更新课程管理
  updateStatus: async (data: any) => {
    return await request.post({ url: `/lession/manage/updateStatus`, data })
  },
}
